﻿<?xml version="1.0" encoding="utf-8"?>

<xsl:stylesheet version="1.0"
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
    <feed xmlns="http://www.w3.org/2005/Atom">
		<title><xsl:value-of select="/website/@name"/></title>
		<subtitle>RSS feed for <xsl:value-of select="/website/@name"/></subtitle>
		<xsl:element name="link"><xsl:attribute name="href">http://<xsl:value-of select="/website/@url"/></xsl:attribute></xsl:element>
		<updated>2007-07-26T17:12:00Z</updated>
		<author>
			<name>webmaster</name>
			<email>webmaster@<xsl:value-of select="/website/@hostname"/></email>
		</author>
		<id>urn:uuid:<xsl:value-of select="/website/@url"/></id>
		<xsl:choose>
			<xsl:when test="/website/@isBlogSite != '1'">
				<xsl:apply-templates select="//blogpost" />
			</xsl:when>
			<xsl:otherwise>
				<xsl:apply-templates select="//webpage" />
			</xsl:otherwise>
		</xsl:choose>
    </feed>
</xsl:template>

	<xsl:template match="webpage">
		<xsl:element name="entry" namespace="http://www.w3.org/2005/Atom">
			<xsl:element name="title" namespace="http://www.w3.org/2005/Atom">
				<xsl:value-of select="@title"/>
			</xsl:element>
			<xsl:element name="link" namespace="http://www.w3.org/2005/Atom">
				<xsl:attribute name="href">http://<xsl:value-of select="/website/@url"/>/<xsl:choose><xsl:when test="@key = ''">?<xsl:value-of select="@guid"/></xsl:when><xsl:otherwise><xsl:value-of select="@key"/>.html</xsl:otherwise></xsl:choose></xsl:attribute>
			</xsl:element>
			<xsl:element name="id" namespace="http://www.w3.org/2005/Atom">urn:uuid:<xsl:value-of select="@guid"/></xsl:element>
			<xsl:element name="updated" namespace="http://www.w3.org/2005/Atom">2007-07-26T17:16:00Z</xsl:element>
			<xsl:element name="summary" namespace="http://www.w3.org/2005/Atom">
				<xsl:variable name="summary">
					<xsl:call-template name="strip-HTML">
						<xsl:with-param name="text" select="text()"></xsl:with-param>
					</xsl:call-template>
				</xsl:variable>
				
				  <xsl:call-template name="globalReplace">
				  <xsl:with-param name="outputString" select="$summary"/>
				  <xsl:with-param name="target" select="'&amp;nbsp;'"/>
				  <xsl:with-param name="replacement" select="' '"/>
				  </xsl:call-template>
			</xsl:element>
		</xsl:element>
	</xsl:template>

	<xsl:template match="blogpost">
		<xsl:element name="entry" namespace="http://www.w3.org/2005/Atom">
			<xsl:element name="title" namespace="http://www.w3.org/2005/Atom">
				<xsl:value-of select="@title"/>
			</xsl:element>
			<xsl:element name="link" namespace="http://www.w3.org/2005/Atom">
				<xsl:attribute name="href">
					http://<xsl:value-of select="/website/@url"/>/<xsl:choose>
						<xsl:when test="@key = ''">
							?<xsl:value-of select="@guid"/>
						</xsl:when>
						<xsl:otherwise>
							<xsl:value-of select="@key"/>.html
						</xsl:otherwise>
					</xsl:choose>
				</xsl:attribute>
			</xsl:element>
			<xsl:element name="id" namespace="http://www.w3.org/2005/Atom">
				urn:uuid:<xsl:value-of select="@guid"/>
			</xsl:element>
			<xsl:element name="updated" namespace="http://www.w3.org/2005/Atom">2007-07-26T17:16:00Z</xsl:element>
			<xsl:element name="summary" namespace="http://www.w3.org/2005/Atom">
				<xsl:variable name="summary">
					<xsl:call-template name="strip-HTML">
						<xsl:with-param name="text" select="text()"></xsl:with-param>
					</xsl:call-template>
				</xsl:variable>

				<xsl:call-template name="globalReplace">
					<xsl:with-param name="outputString" select="$summary"/>
					<xsl:with-param name="target" select="'&amp;nbsp;'"/>
					<xsl:with-param name="replacement" select="' '"/>
				</xsl:call-template>
			</xsl:element>
		</xsl:element>
	</xsl:template>

	<xsl:template name="strip-HTML">
    <xsl:param name="text"/>
	
    <xsl:choose>
        <xsl:when test="contains($text, '&gt;')">
            <xsl:choose>
                <xsl:when test="contains($text, '&lt;')">
                    <xsl:value-of select="substring-before($text, '&lt;')"/>
                </xsl:when>
                <xsl:otherwise>
                    <xsl:value-of select="substring-before($text, '&gt;')"/>
                </xsl:otherwise>
            </xsl:choose>
            <xsl:call-template name="strip-HTML">
                <xsl:with-param name="text" select="substring-after($text,'&gt;')"/>
            </xsl:call-template>
        </xsl:when>
        <xsl:otherwise>
            <xsl:value-of select="$text"/>
        </xsl:otherwise>
    </xsl:choose>
</xsl:template>
	
<xsl:template name="globalReplace">
  <xsl:param name="outputString"/>
  <xsl:param name="target"/>
  <xsl:param name="replacement"/>
  <xsl:choose>
    <xsl:when test="contains($outputString,$target)">
   
      <xsl:value-of select="concat(substring-before($outputString,$target), $replacement)"/>
      <xsl:call-template name="globalReplace">
        <xsl:with-param name="outputString" select="substring-after($outputString,$target)"/>
        <xsl:with-param name="target" select="$target"/>
        <xsl:with-param name="replacement" select="$replacement"/>
      </xsl:call-template>
    </xsl:when>
    <xsl:otherwise>
      <xsl:value-of select="$outputString"/>
    </xsl:otherwise>
  </xsl:choose>
</xsl:template>

<xsl:template match="year/text()">
  <xsl:call-template name="globalReplace">
  <xsl:with-param name="outputString" select="."/>
  <xsl:with-param name="target" select="'9'"/>
  <xsl:with-param name="replacement" select="'0'"/>
  </xsl:call-template>
</xsl:template>

</xsl:stylesheet> 

